// Bibliotecas
#include "Garagem.h"
#include "Mensagens.h"
#include "VariaveisGlobais.h"
#include <iostream>
#include <iomanip>

// Pacotes utilizados
using namespace std;

// Nomes das colunas
const string coluna1 = "Placa";
const string coluna2 = "modelo";
const string coluna3 = "Cor";
const string coluna4 = "Capacidade";

// Construtor
Garagem::Garagem(){}

// Destrutor
Garagem::~Garagem(){}

// Buscar lista de veiculos
list<Veiculo*> Garagem::getListaVeiculo()const{
	
	return this->listaVeiculo;
	
}

// Insere Veiculo na Garagem
void Garagem::InsereVeiculoGaragem(Veiculo* veiculo){
	
	this->listaVeiculo.push_back(veiculo);

}

// Imprime a lista de veiculos
void Garagem::ImprimeListaVeiculo()const{

	Veiculo* veiculo;
	list<Veiculo*> theList;
	list<Veiculo*>::iterator theIterator;
	
	theList = this->getListaVeiculo();
	
	if (theList.size() > 0){
		
		// Imprime o cabecalho da tabela
		cout << MENU_5 << endl << endl
			 << setfill(SET_FILL_VAZIO) 
			 << BARRA << setw(1) << setw(12) << internal << coluna1 << setw(1)
		 	 << BARRA << setw(1) << setw(12) << internal << coluna2 << setw(1)
		 	 << BARRA << setw(1) << setw(12) << internal << coluna3 << setw(1)
		 	 << BARRA << setw(1) << setw(12) << internal << coluna4 << setw(1) << BARRA << endl ;		
		
		// Percorre todos os itens da lista
		for( theIterator = theList.begin(); theIterator != theList.end(); theIterator++ ) {
			veiculo = (*theIterator);
				
			// Imprime um veiculo
			//veiculo->ImprimeVeiculo();
		} 		
		
	}else{
		
		cout << endl << VEICULO_BUSCA_TODOS_VAZIA;
		
	}
	
}
